perm filename IPUPC.H[11,HE] blob sn#688218 filedate 1982-12-06 generic text, type T, neo UTF8
/*
 * pupconstants.h
 *
 * This file defines Pup type codes, and related things
 * such as well-known sockets, etc.  (This used to be part
 * of packet.h).
 *
 * Jeffrey Mogul	22-June-1980
 */

/*
 * Ethernet packet types 
 */
#define	PUP		01000

/*
 * Well-Known Pup Sockets
 */
#define	TELNET		1
#define	GATEWAYINFO	2
#define	FTP		3
#define	MISCSERVICES	4
#define	ECHOSERVER	5
#define MAIL		7
#define EFTPSERVER	020
#define EARSSTATUS	021
#define LEAF		043
#define NETUPD		0103

/* define MAXWELLKNOWNSOCKET to be higher than the highest Well Known pup
 * socket; this allows us to chose Unique socket numbers without accidentally
 * becoming a server for some strange protocol!
 */
#define MAXWELLKNOWNSOCKET 01000	/* highest I know is WFS = 0420 */

/*
 * Registered pup types
 */
#define	ECHOME		1
#define	IMANECHO	2
#define	IMABADECHO	3
#define ERRORPUP	04	
#define RFC		010
#define RTP_ABORT	011
#define RTP_END		012
#define RTP_ENDR	013
#define BSP_DATA	020
#define BSP_ADATA	021
#define BSP_ACK		022
#define BSP_MARK	023
#define BSP_INTR	024
#define BSP_INTRR	025
#define BSP_AMARK	026

#define EFTPDATA	030
#define EFTPACK		031
#define EFTPEND		032
#define EFTPABORT	033

/* The following are MiscServices names for Pup Types; other
 * services may interpret the same numbers differently.
 */

#define	STIMEREQ	0200	/* string time request */
#define STIMERESP	0201	/* string time reply */
#define ATIMEREQ	0206	/* Alto time request */
#define	ATIMERESP	0207	/* Alto time response */
#define TIMECHECK	0206	/* Alto time request */
#define	TIMERESP	0207	/* Alto time response */
#define	NAMEREQ		0220
#define	NAMERESP	0221
#define ADDREQ		0223
#define ADDRESP		0224
#define	LOOKUPERR	0222
#define MMAILREQ	0210	/* Msg-style Mail Check Request */
#define	LMAILREQ	0214	/* Laurel-style Mail Check Request */
#define MAILCHECK	0214
#define NEWMAIL		0211
#define NONEWMAIL	0212
#define NOSUCHMBOX	0213
#define	WHRUSREQ	0230	/* Where is User request */
#define	WHRUSRESP	0231	/* Where is User response */
#define WHRUSERR	0232	/* Where is User Error */
#define	NETDIRVERSION	0240	/* Net Directory Version */
#define	SENDNETDIR	0241	/* Send Network Directory */
#define BOOTFILEREQ	0244	/* Boot File Request */
#define KISSOFDEATH	0247	/* Kiss of Death */
#define	AUTHREQ		0250	/* User authentication request */
#define AUTHPOSRESP	0251	/* User authentication positive response */
#define AUTHNEGRESP	0252	/* User authentication negative response */
#define BOOTSTRQ	0253	/* Boot Stats request */
#define BOOTSTRP	0254	/* Boot Stats reply */
#define BOOTDREQ	0257	/* Boot directory request */
#define BOOTDREP	0260	/* Boot directory reply */

/* The following are MiscServices pup types that are non-standard;
 * they have been defined locally (i.e., @ Stanford).  Care should
 * be taken when using them elsewhere, or when imported software
 * is used.
 */
#define	SENDUMSG	0300	/* send a "wall" message to a remote host:
				 * the format of PupData is
				 * "SenderName:ReceiverName:message", 
				 * "*" means all users, with all newlines
				 * in the message.  (Max message length
				 * is about 500 chars.)
				 */
#define	SENDUACK	0301	/* Acknowledges a SENDUMSG */
#define SENDUERR	0302	/* ditto, but remote host refuses */
#define	SUNBOOTREQ	0303	/* like Alto boot request, but for a Sun */
#define	SUNBOOTDREQ	0304	/* like Alto boot dir req, but for a Sun */
#define SUNBOOTDREP	0305	/* like Alto boot dir rep, but for a Sun */
#define	SUNBOOTDNEW	0306	/* New Sun Boot dir request */

#define	ATTRIBUTESREQ	0310	/* Net Directory attributes request */
#define	ATTRIBUTESREP	0311	/* Net Directory attributes response */
#define	ATTRIBUTESERR	LOOKUPERR	/* shared error code */

/*
 *  Pup types for GateWay-Info:
 */

#define	GWINFREQ	0200	/* GateWay Information Request */
#define	GWINFREP	0201	/* GateWay Information Reply */

/*
 * Pup types for Ears-Status (== Spruce-Status)
 */
#define EARSTATREQ	0200
#define	EARSTATREP	0201

/*
 * Fundamental constants for Routing Table Updates; this
 * may seem like a funny place for limits and timeouts,
 * but these are "known" values all over the internet
 * (e.g., a "Hop Count" of MAXHOPS + 1 is considered to
 * be infinite.)
 */
#define	MAXHOPS		15	/* maximum allowable hops to destination */
#define	RTETIMEOUT	90	/* (seconds) until routing info is "stale" */